iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0
自我挑戰組

C++跨平台LINUX & Windows的編譯與環境系列 第 7

Day 7. Ubuntu下編譯C++ windows程式碼差異

  • 分享至 

  • xImage
  •  

編寫Windows相容的C++程式碼,需要遵循一些基本原則和注意事項,以確保程式碼可以在Windows上正常執行。

  1. 使用標準C++程式庫:
    使用標準C++程式庫,而不是特定於操作系統的程式庫。這將確保程式碼在不同平台上都能正常執行。(除非有明確的跨平台解決方案)

  2. 處理文字大小寫:
    Windows文件系統是不區分大小寫,但Ubuntu通常是區分大小寫。

  3. 文件路徑分隔符:
    Windows使用反斜線('')作為文件路徑分隔符,而Ubuntu使用正斜線('/')。
    // Windows上的路徑
    std::string filePath = "C:\Users\User\file.txt";
    // Linux/Ubuntu上的路徑
    std::string filePath = "/home/user/file.txt";

  4. 行結束符:
    Windows使用回車符('\r')和換行符('\n')來表示行結束,而Ubuntu使用換行符('\n')。
    // Windows行結束符
    std::string windowsText = "Hello\r\nWorld";
    // Ubuntu行結束符
    std::string linuxText = "Hello\nWorld";

  5. 注意字串長度:
    字串的大小由編譯器和操作系統決定,並且在不同的編譯器和平台之間可能有所不同。
    Windows wchar_t 通常是 2 個字節,表示為 16 位的寬字符。
    Linux 上的 GCC,wchar_t 通常是 4 個字節,表示為 32 位的寬字符。
    由於這種大小差異,跨平台的 C++ 代碼中需要小心處理 wchar_t。
    建議使用char16_t 和 char32_t確保固定大小的寬字符。


上一篇
Day 6. Ubuntu下編譯windows程式
下一篇
Day 8. Windows上的編譯工具
系列文
C++跨平台LINUX & Windows的編譯與環境19
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言